using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using star_questionnair.Models;

namespace star_questionnair.Services;

public interface IQuestionnaireService
{
    Task<Questionnaire> InsertQuestionnaireAsync(int authorId, string title, string description);
    Task<Questionnaire> GetQuestionnaireByIdAsync(int questionnaireId);
    Task UpdateQuestionnaireAsync(Questionnaire questionnaire);
    Task DeleteQuestionnaireAsync(int questionnaireId);
    Task UpdateDeadlineAsync(int questionnaireId, DateTime newDeadline);
    Task UpdateQuestionnaireStatusAsync(int questionnaireId);
    Task<int> GetQuestionnaireResponseCountAsync(int questionnaireId);
    Task<Questionnaire> SubmitWholeQuestionnaireAsync(Questionnaire questionnaire);
    Task<Questionnaire> UpdateWholeQuestionnaireAsync(Questionnaire questionnaire);
    Task DeleteWholeQuestionnaireAsync(int questionnaireId);
    Task<Questionnaire> GetQuestionnaireAfterCreateAsync(int authorId, string title);
    Task<int> GetCountQuestionByAuthorAndTitleAsync(int authorId, string title);
}